package com.ruoyi.business.service;

import com.ruoyi.business.entity.bo.*;

/**
 * 业务流程接口
 */
public interface BusinessProcessService {

    /**
     * 获取 工程款支付审核报表审批流程 预设审批人
     */
    ProcessPersonBo getGCKZHSHBBSPLCPerson(Long businessId);

    /**
     * 发起 工程款支付审核报表审批流程
     */
    Boolean startGCKZHSHBBSPLCProcess(gckzfshbbsplcBo bo);


    /**
     * 发起合同审批流程
     */
    Boolean startHTSPProcess(htsplcBo bo);

    /**
     * 获取合同审批流程预设审批人
     */
    ProcessPersonBo getHTSPLCPerson(Long businessId);


    /**
     * 发起合同站点清单审批流程
     */
    Boolean startHTZDQDSPProcess(htzdqdlcBo bo);

    /**
     * 获取合同站点清单审批流程预设审批人
     */
    ProcessPersonBo getHTZDQDSPPerson(Long businessId);

    /**
     * 发起开工预付款审批流程
     */
    Boolean startKGYFKProcess(kgyfklcBo bo);

    /**
     * 获取开工预付款审批流程预设审批人
     */
    ProcessPersonBo getKGYFKLCPerson(Long businessId);

    Boolean startGXBYSPLCProcess(GxbysplcBo bo);

    ProcessPersonBo getGXBYSPLCPerson(Long businessId);

    /**
     * 发起甲供材审批流程
     * @param bo
     * @return
     */
    Boolean startJGCSPLCProcess(jgcsplcBo bo);

    /**
     * 获取 甲供材审批流程 预设审批人
     * @param businessId
     * @return
     */
    ProcessPersonBo getJGCSPLCPerson(Long businessId);

    /**
     * 发起 甲供材报表审批流程
     * @param bo
     * @return
     */
    Boolean startJGCBBSPLCProcess(jgcsplcBo bo);

    ProcessPersonBo getJGCBBSPLCPerson(Long businessId);

    /**
     * 发起 合同站点清单变更审批流程
     * @param bo
     * @return
     */
    Boolean startHTZDQDBGSPProcess(htzdqdlcBo bo);

    /**
     * 获取合同站点清单变更审批流程预设审批人
     * @param businessId
     * @return
     */
    ProcessPersonBo getHTZDQDBGSPPerson(Long businessId);

    Boolean startHTBGSPProcess(htsplcBo bo);

    ProcessPersonBo getHTBGSPLCPerson(Long businessId);
}
